package logic;

import dao.EspecialidadDAO;
import dto.EspecialidadDTO;
import java.sql.SQLException;
import java.util.ArrayList;

/**
 *
 * @author the_rub
 */
public class Especialidad {

  private int id;
  private String nombre;

  public Especialidad(int id, String nombre) {
    this.id = id;
    this.nombre = nombre;
  }

  public Especialidad(EspecialidadDTO dto){
    this.id = dto.getId();
    this.nombre = dto.getNombre();
  }

  public void Save() throws SQLException {
    EspecialidadDTO dto = new EspecialidadDTO(-1, nombre);
    EspecialidadDAO dao = EspecialidadDAO.createDAO();
    id = dao.Save(dto);
  }

  public String Delete() {
    String err = null;
    try {
      EspecialidadDAO.createDAO().Delete(id);
    } catch (SQLException e) {
      err = e.getSQLState();
    }
    return err;
  }

  public EspecialidadDTO EditNombre(String nombre) throws SQLException {
    EspecialidadDAO dao = EspecialidadDAO.createDAO();
    return dao.EditString(id, "nombre", nombre);
  }

  public static ArrayList<EspecialidadDTO> All() throws SQLException {
    EspecialidadDAO dao = EspecialidadDAO.createDAO();
    return dao.All();
  }

  public static EspecialidadDTO SearchByID(int id) throws SQLException {
    EspecialidadDAO dao = EspecialidadDAO.createDAO();
    return dao.EspecialidadDTO(id);
  }

  public static ArrayList<EspecialidadDTO> SearchByNombre(String name) throws SQLException {
    EspecialidadDAO dao = EspecialidadDAO.createDAO();
    return dao.SearchByNombre(name);
  }

  public int getId() {
    return id;
  }

  public String getNombre() {
    return nombre;
  }

}
